package controllerActions;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.ResourceBundle;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import connection.DBConnection;
import dao.AuftragDAO;
import dao.BenutzerDAO;
import dao.MeinPortfolioDAO;

import beans.Auftrag;
import beans.Benutzer;
import beans.MeinPortfolio;

public class AktieStornieren {
	public void aktieStornieren(HttpSession session, HttpServletRequest request, DBConnection dbc, AuftragDAO auftragDAO, MeinPortfolioDAO meinPortfolioDAO){
		ResourceBundle properties = ResourceBundle.getBundle("controller.string");
		ArrayList<Auftrag> auftragList = new ArrayList<Auftrag>();
		Auftrag auftrag = new Auftrag();
		try {
			auftragDAO.useConnection(dbc.getDBInfos());
			auftragList = auftragDAO.selectAuftraege();
			int index = Integer.valueOf(request.getParameter("index"));
			auftrag = auftragList.get(index);
			int dazuAnzahl = auftrag.getAnzahl();
			int aktieFK = auftrag.getAktie_FK();
			int benutzerFK = auftrag.getBenutzer_FK();
			auftragDAO.deleteAuftrag(auftrag.getAuftrag_ID());

			meinPortfolioDAO.useConnection(dbc.getDBInfos());
			int vorhandeneAnzahl = meinPortfolioDAO.findAnzahl(aktieFK,
					benutzerFK);
			int neueAnzahl = vorhandeneAnzahl + dazuAnzahl;
			ArrayList<MeinPortfolio> portfolioList = meinPortfolioDAO.findPortfolioFuerStorno((int)session.getValue("UserID"), auftrag.getAktie_FK());

			if(portfolioList.size() == 0){
				System.out.println("schreibe");
				MeinPortfolio meinPortfolio = new MeinPortfolio();
				meinPortfolio.setAktie_FK(auftrag.getAktie_FK());
				meinPortfolio.setAnzahl(auftrag.getAnzahl());
				meinPortfolio.setBenutzer_FK((int)session.getValue("UserID"));
				meinPortfolioDAO.insertPortfolio(meinPortfolio);
			}else{
				meinPortfolioDAO.updateAnzahlvonStorno(aktieFK, benutzerFK, neueAnzahl);
			}
			session.putValue("meldung", properties.getString("meldung4") + auftrag.getAuftrag_ID());
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}
